The OSI (Open Systems Interconnection) systems management is a standard that provides mechanisms for the monitoring, control, and coordination of resources such as storage units, databases, telecommunication switches, communication links, etc., within the OSI environment and OSI protocol standards for communicating information pertinent to those resources.
The OSI management standards define an "agent" as an application entity that provides a standardized access to a resource, and a "manager" as an application entity that performs management functions. A resource is represented using standardized "managed object classes" and each instantiation of a class is called a "managed object instance". For example, one managed object class may be a generally defined type of disk unit, and each individual disk unit of that type then is one instance of this class. The various operations in such a system are governed by a "Common Management Information Protocol" or short CMIP.
A manager application executes management operations on managed object instances contained in an agent by sending CMIS (Common Management Information Services) service requests to that agent over the network using the CMIP protocol. Such service requests may include the following operations: create, delete, set, get, action, cancel-get. The agent returns responses and events to the manager, also using the CMIP protocol. The configuration of such an OSI environment is shown generally in FIG. 1, including, besides the communication network 1, an OSI manager 2, OSI agent 3 with agent kernel 4, managed object instances 5-a, 5-b, 5-i, 5-n, resources 6-a, 6-b to be accessed, and the flow of CMIP protocol messages. The OSI MANAGER 2 could be loaded on a convention computer system 2' while the agent 3 and related components are loaded on conventional computer system 3'.
The OSI Systems Management standards and the related CMIP protocol and CMIS services are described in the following publications:
ISO/IEC 10040, Information Technology--Open Systems Interconnection--Systems Management Overview, 1991. PA1 ISO/IEC 9595, Information Technology--Open Systems Interconnection--Common Management Information Service Definition, 1991. PA1 ISO/IEC 9596, Information Technology--Open Systems Interconnection--Common Management Information Protocol Definition, 1991. PA1 ISO/IEC 10165-1, Information Technology--Open Systems Interconnection--Structure of Management Information--Part 1: Management Information Model, 1992. PA1 ISO/IEC 10165-2, Information Technology--Open Systems Interconnection--Structure of Management Information--Definition of Management Information, 1992. PA1 ISO/IEC 10165-4, Information Technology--Open Systems Interconnection--Guidelines for the Definition of Managed Objects, 1992. PA1 A. Birrell: "An Introduction to Programming with Threads", in "Systems Programming with Modula3", G. Nelson (Ed.), Prentice Hall, 1991, pp. 88-118; PA1 Draft Standard for Information Technology--Portable Operating System Interface (POSIX)--Part 1: Systems Application Program Interface (API), Amendment 2: Threads Extension; IEEE, October 1993. PA1 U.S. Pat. No. 5,247,676 "RPC Based Computer System Using Transparent Callback and Associated Method", disclosing a first calling thread, a second called thread, and helper threads. However, this patent concerns remote procedure calls (RPCs) and callbacks within a computer system, and not the problem of handling multiple CMIP requests in an OSI environment.
Multiple managers can be connected to an agent at the same time, and each can send CMIP requests to the agent asynchronously. This results in the following problem:
An OSI agent can receive multiple CMIP requests from multiple sources. Some of these requests may incur long processing times--a typical example is a CMIP "get" request to a managed object instance which may result in a resource access (establish connection, wait for response, close connection). Servicing CMIP requests sequentially may therefore cause long delays and thus may result in poor performance.
Some help in the organization of servicing requests and accessing resources may be the use of "threads", a thread being a single flow of control within a process, each thread having its own thread identifier (ID) and the required resources to support a flow of control. In this context, a function is provided called "mutex" (mutual exclusion) which allows multiple threads to serialize their access to shared data: a thread can lock a mutex and thereby becomes its owner until that same thread unlocks the mutex.
A description and definition of threads are given in the following publications:
The utilization of threads and the mutex function as presented in the prior art do allow serialization of accesses but per se do not solve the above stated problem of possible long delays and poor performance when multiple CMIP requests are received and resources have to be accessed.